Software configuration based on entitlement records

ABSTRACT

Embodiments of the present invention address deficiencies of the art in respect to software license management and provide a method, system and computer program product for authorizing customer managed software installation. In an embodiment of the invention, a method for authorizing customer managed software installation based on entitlement records can be provided. The method can include in response to a request to transfer a registered software product from an existing platform to a new platform, validating both an entitlement record and also a maintenance record for the registered software product and transferring the registered software product to the new platform only if both the entitlement record and the maintenance record validate.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of software installation and more particularly to authorizing customer managed software installation.

2. Description of the Related Art

Historically, computer programs have been distributed in disk medium—initially on tape and eventually on floppy and optical disk. Controlling the unauthorized distribution of computer software, however, has vexed the software publishing industry from the beginning. Initial efforts to combat the unlicensed use of software involved dongles and passwords. As the distribution of multi-user software has become more complex and as target platforms in target network environments constantly change, early models for software licensure management fail. Modern efforts involve centralized registration and management of end user licensing of software applications.

In furtherance of centralized registration and management of end user licensing of software applications, in today's software configuration installation environment it has been customary to use sales inventory records to establish software configuration transfer or upgrade base starting points. When a customer is first shipped their software product, inventory records are used to accurately reflect the customer number and hardware serial number for the ordered software products. Over time the customer may eventually transfer the software products to other hardware systems within the customer's enterprise.

Typically, a customer purchases a software license and receives a key to transfer the software product on a given number of hardware systems or machines. Since the customer may transfer the software product from machine to machine, it is difficult to determine what version of software is on a particular machine. Usually when a customer orders a software upgrade, there is no nexus between where the software currently resides and the validity of software license entitlement information in inventory records.

In many instances these historical records do not match the entitled product residency. This can result in a configuration starting point that does not match the customer's actual installed and entitled use of a software product, causing a nuisance to marketing teams to manually modify inventory records so they are in agreement with existing entitled software installation support on customer systems.

The problem with current methods is that when a customer purchases a single software product, any attempt to transfer the software product to another machine is prevented. Entitling a software product to a specific machine in a customer's enterprise, and restricting the software product to that specific system only fails to support a customer's ever-changing business requirements.

BRIEF SUMMARY OF THE INVENTION

Embodiments of the present invention address deficiencies of the art in respect software license management and provide a novel and non-obvious method, system and computer program product for authorizing customer managed software installation. In an embodiment of the invention, a method for authorizing customer managed software installation based on entitlement records can be provided. The method can include in response to a request to transfer a registered software product from an existing platform to a new platform, validating both an entitlement record and also a maintenance record for the registered software product and transferring the registered software product to the new platform only if both the entitlement record and the maintenance record validate.

In another embodiment of the invention, an authorizing customer managed software installation data processing system can be provided. The system can include a data store of inventory records, maintenance records and entitlement records for different installations of an application for different customers on different computing platforms. The system further can include an e-configurator including program code enabled to provide a configuration of the computing platforms for a specified one of the customers. Finally, the system can include a base retriever coupled to the e-configurator and the data store. The base retriever can include program code enabled to determine by reference to the inventory records, the maintenance records and the entitlement records, each of a version of an installed application in an existing one of the computing platforms based upon a serial number of the installed application, and to validate the version of the installed application in comparison to a configuration provided by the e-configurator in authorizing a transfer of the installed application to a different one of the computing platforms.

Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:

FIG. 1 is a schematic illustration of a software configuration system based on authorizing customer managed software installation;

FIG. 2 is a flowchart illustrating a process for authorizing customer managed software installation.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the present invention provide a method, system and computer program product for authorizing customer managed software installation and automatic software configuration based on entitlement records. In accordance with an embodiment of the invention, a software product can be installed on an initial computing system. Subsequently, if the software product is to be installed on a different computing system, the transfer of the software product can be recorded without losing entitlement support. In this regard, before permitting a transfer to a target computing platform, an entitlement record for the software product can be consulted to determine the validity of the software license for the software product for the target computing platform. To the extent that the entitlement record can be validated to reflect that the software product can be properly licensed for operation in the target computing platform, then the transfer of the installation of the software product from the existing computing platform onto the target computing platform can proceed and the entitlement records can be modified to reflect the new installation on the target computing platform to the exclusion of the old installation on the existing computing platform.

In further illustration, FIG. 1 schematically depicts a software configuration data processing system configured to authorize an upgrade or transfer of an installed application 100 to a target computing platform 120B from an existing computing platform 120A based upon entitlement records. As shown in FIG. 1, the system can include an upgrade support system 110A such as a Web-enabled self-service application distribution system configured for communicative coupling to one or more computing platforms 120A, 120B over computer communications network 130. Specifically, the upgrade support system 110A can support the execution of a license management system 110B managing the licensure of an installed application 100.

Specifically, the license management system 110B can include an e-configurator 190 providing for the configuration of computing platforms 120A, 120B (both hardware and software) for a specified customer. A base retriever 160 further can be provided as part of the license management system 110B and can be linked to both inventory records 180 and also maintenance records 170. Yet further, the base retriever 160 can be communicatively linked to entitlement records 140 separately coupled to the upgrade support system 110A and the computing platforms 120A, 120B over the computer communications network 130. Notably, each record amongst the entitlement records 140 can relate an installed application 100 to a computing platform 120A, 120B in which the installed application 100 is entitled for installation.

The base retriever 160 can include program code enabled to determine by reference to the inventory records 180, the maintenance records 170 and the entitlement records 140, a version of the installed application 100 installed on its existing computing platform 120A based upon a serial number before an upgrade or transfer to a target computing platform 120B occurs. In particular, the inventory records 180 can include a list of hardware and software components associated with the installed application 100 as provided by the e-configurator 190 irrespective of the existing computing platform 120A. The maintenance records 170, by comparison, can record a license of the installed application 100 based upon a serial number associated with the installed application 100 irrespective of the existing computing platform 120A.

The entitlement records 140, unlike the maintenance records 170 and the inventory records 180, ties the installed application 100 to a specific one of the computing platforms 120A, 120B along with an appropriate software product release level and specific level of entitlement purchased for the specific one of the computing platforms 120A, 120B. As it will be recognized by the skilled artisan, then, while the inventory records 180 may have been valid at the time of the original sale of the installed application 100, the inventory records 180 may not reflect the true residence (e.g. the existing computing platform 120A) as the existing computing platform 120A may differ from a recorded, initial computing platform.

Likewise, machine-based records in the existing computing platform 120A may host the installed application 100 in violation of an associated licensing agreement terms and conditions. Though the maintenance records 170 can represent a group of software programs required for upgrade support, the maintenance records 170 alone are not sufficient to reflect the individual software programs installed on the customer's system due to the fact that the group of software programs may represent a suite of programs which must be individually licensed.

Accordingly, in operation, the program code of the base retriever 160 can be enabled upon receiving a request from a customer for either an upgrade or transfer of the installed application 100 to a target computing platform 120B to determine the entitlement of the customer to upgrade or transfer the installed application 100 to a target computing platform 120B. If the customer is entitled to upgrade or transfer the installed application 100 onto the target computing platform 120B by reference to the entitlement records 140, the program code of the base retriever 160 can direct the transmittal of a transfer key 150 to the target platform 120B in order both to permit the upgrade or transfer and also to record a new corresponding entry into the entitlement records 140.

The support for the customer management and transfer of a registered software product shown in FIG. 1 can be performed under the control of the customer via a Web site providing access to the license management system 110B. As a result, customers can transfer a registered software product from one platform to another and the customers can re-associate the entitlement records for the registered software product with the new platform automatically through the customer managed Web site. Further, the arrangement shown in FIG. 1 can permit the purchasing of additional entitlements for the registered software product such as additional users, processor tier upgrades, added processors, and the like using registered data on hand for the installed computing device. Finally, the arrangement shown in FIG. 1 can support the enhancement of a registered software product with a new level of entitlement while charging the customer only for the incremental entitlement purchased.

In more general illustration of the process of the invention, FIG. 2 is a flowchart illustrating a process for authorizing customer managed software installation based on entitlement records. When a customer goes online to request an upgrade or transfer 205, in decision block 210 if it is determined that the request is a software transfer then in block 215 the entitlement record can be retrieved along with the maintenance record in block 220. If in decision block 225, the entitlement record is not valid then in block 230 the transfer can be refused and the customer can be notified with an error message. If the entitlement record is valid, then in block 235 the entitlement record can be updated with the new designated hardware system the installation will occur on. Next in block 240 a new license key can be created for the new designated hardware system. The customer can then download the new license key and transfer the software to another hardware system.

If the customer request is for a software upgrade, then in block 245 the base retriever can get the current configuration of the hardware system. Next in block 250 the entitlement record can be retrieved along with checking the maintenance record in block 255. If in decision block 260, the entitlement record is not valid then in block 265 the transfer can be refused and the customer can be notified with an error message. If the entitlement record is valid, then in block 270 the entitlement record can be updated with the new designated hardware system the installation will occur on. The customer can then be shipped the update for the software product by the configurator.

Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.

For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.

A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters. 

1. A method for authorizing customer managed software installation based on entitlement records comprising: responsive to a request to transfer a registered software product from an existing platform to a new platform, validating both an entitlement record and also a maintenance record for the registered software product and transferring the registered software product to the new platform only if both the entitlement record and the maintenance record validate.
 2. The method of claim 1, wherein validating both an entitlement record and also a maintenance record for the registered software product comprises: retrieving a software configuration for the registered software product for a current platform, and also retrieving a software entitlement record for the registered software product; validating the software maintenance record and the software entitlement record against the software configuration; and, responsive to confirming the validity of the software entitlement and maintenance records respectively, allowing transfer of the registered software product to the new platform.
 3. The method of claim 1, further comprising updating the entitlement record to represent a new residency of the registered software product in the new platform.
 4. The method of claim 1, further comprising providing a Web interface to request the transfer of the registered software product to the new platform.
 5. The method of claim 4, further comprising: requesting an upgrade of entitlements through the Web interface; and, changing the entitlement record to reflect the upgrade.
 6. The method of claim 5, further comprising registering an incremental upgrade license fee only for the upgrade of entitlements.
 7. An authorizing customer managed software installation data processing system comprising: a data store of inventory records, maintenance records and entitlement records for different installations of an application for different customers on different computing platforms; an e-configurator comprising program code enabled to provide a configuration of the computing platforms for a specified one of the customers; and, a base retriever coupled to the e-configurator and the data store, the base retriever comprising program code enabled to determine by reference to the inventory records, the maintenance records and the entitlement records, each of a version of an installed application in an existing one of the computing platforms based upon a serial number of the installed application, and to validate the version of the installed application in comparison to a configuration provided by the e-configurator in authorizing a transfer of the installed application to a different one of the computing platforms.
 8. A computer program product comprising a computer usable medium embodying computer usable program code for validating software entitlement of a software product the computer program product comprising: computer usable program code for validating in response to a request to transfer a registered software product from an existing platform to a new platform, both an entitlement record and also a maintenance record for the registered software product and transferring the registered software product to the new platform only if both the entitlement record and the maintenance record validate.
 9. The computer program product of claim 8, wherein the computer usable program code for validating both an entitlement record and also a maintenance record for the registered software product comprises: computer usable program code for retrieving a software configuration for the registered software product for a current platform, and also retrieving a software entitlement record for the registered software product; computer usable program code for validating the software maintenance record and the software entitlement record against the software configuration; and, computer usable program code for responsive to confirming the validity of the software entitlement and maintenance records respectively, allowing transfer of the registered software product to the new platform.
 10. The computer program product of claim 8, further comprising computer usable program code for updating the entitlement record to represent a new residency of the registered software product in the new platform.
 11. The computer program product of claim 8, further comprising computer usable program code for providing a Web interface to request the transfer of the registered software product to the new platform.
 12. The computer program product of claim 11, further comprising: computer usable program code for requesting an upgrade of entitlements through the Web interface; and, computer usable program code for changing the entitlement record to reflect the upgrade.
 13. The computer program product of claim 12, further comprising computer usable program code for registering an incremental upgrade license fee only for the upgrade of entitlements. 